import Pretty.Supports.ResolvePareto import Pretty.Supports.DocSize import Pretty.Supports.MeasRender import Pretty.Claims.Widen /-! ## Validity theorems -/ mutual /-- The validity theorem for non-tainted result (the first part of Theorem 5.8) -/ theoremResolve_valid (h_print : Resolveh_print: Resolve F d c i (MeasureSet.set ms h)FF: ?m.4dd: ?m.11cc: ?m.17i (MeasureSet.seti: ?m.23msms: ?m.32h)) (h: ?m.41h_widen : Widenh_widen: Widen d Ddd: ?m.11D) (D: ?m.54h_m :h_m: m ∈ msm ∈m: ?m.81ms) : ∃ms: ?m.32d_choiceless,d_choiceless: ?m.123d_choiceless ∈d_choiceless: ?m.123D ∧ MeasRenderD: ?m.54FF: ?m.4d_choicelessd_choiceless: ?m.123cc: ?m.17ii: ?m.23m :=m: ?m.81Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
D: List Doc
m: Meas
s: String
h_widen: Widen (Doc.text s) D
h_c✝: c + String.length s ≤ F.W
h_i✝: i ≤ F.W
h✝: MeasRender F (Doc.text s) c i m
h: [m] ≠ []
h_m: m ∈ [m]
text_set.refl.leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
D: List Doc
m: Meas
s: String
h_widen: Widen (Doc.text s) D
h_c✝: c + String.length s ≤ F.W
h_i✝: i ≤ F.W
h✝: MeasRender F (Doc.text s) c i m
h: [m] ≠ []
h_m: m ∈ [m]
text_set.refl.rightMeasRender F (Doc.text s) c i mGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
D: List Doc
m: Meas
h_widen: Widen Doc.nl D
h_c✝: c ≤ F.W
h_i✝: i ≤ F.W
h✝: MeasRender F Doc.nl c i m
h: [m] ≠ []
h_m: m ∈ [m]
line_set.refl.leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
D: List Doc
m: Meas
h_widen: Widen Doc.nl D
h_c✝: c ≤ F.W
h_i✝: i ≤ F.W
h✝: MeasRender F Doc.nl c i m
h: [m] ≠ []
h_m: m ∈ [m]
line_set.refl.rightMeasRender F Doc.nl c i mGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: MeasureSet
h✝: Resolve F d' c (i + n) ms✝
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) ms✝
nest∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms': MeasureSet
h': Resolve F d' c (i + n) ms'
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms': MeasureSet
h': Resolve F d' c (i + n) ms'
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms': MeasureSet
h': Resolve F d' c (i + n) ms'
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: ms = List.map (Meas.adjust_nest n) ms✝∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
D: List Doc
m: Meas
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝¹: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝¹)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h✝: Widen d' L✝
nest∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = m∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_nest n m' = m∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d'✝: Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_nest n m' = m
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m'∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d'✝: Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_nest n m' = m
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m'α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d'✝: Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_nest n m' = m
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m'MeasRender F (Doc.nest n d') c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d'✝: Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
m': Meas
h_left: m' ∈ ms✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m'
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = Meas.adjust_nest n m'MeasRender F (Doc.nest n d') c i (Meas.adjust_nest n m')α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d'✝: Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
m': Meas
h_left: m' ∈ ms✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m'
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = Meas.adjust_nest n m'
this: m'.doc = d'MeasRender F (Doc.nest n d') c i (Meas.adjust_nest n m')α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
m': Meas
h_left: m' ∈ ms✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = Meas.adjust_nest n m'
h_in: m'.doc ∈ L✝
h_render: MeasRender F m'.doc c (i + n) m'MeasRender F (Doc.nest n m'.doc) c i (Meas.adjust_nest n m')α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
m': Meas
h_left: m' ∈ ms✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_nest n a = Meas.adjust_nest n m'
h_in: m'.doc ∈ L✝
h_render: MeasRender F m'.doc c (i + n) m'
hMeasRender F m'.doc c (i + n) { last := (Meas.adjust_nest n m').last, cost := (Meas.adjust_nest n m').cost, doc := m'.doc, x := (Meas.adjust_nest n m').x, y := (Meas.adjust_nest n m').y }α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
n: ℕ
d': Doc
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_nest n) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_nest n) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms✝: MeasureSet
h✝: Resolve F d' c c ms✝
h_bad✝: i > F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms✝)
align_taint∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms✝: MeasureSet
h✝: Resolve F d' c c ms✝
h_ok✝: i ≤ F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) ms✝
align∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h': Resolve F d' c c ms'
h_ok✝: i ≤ F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h': Resolve F d' c c ms'
h_ok✝: i ≤ F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h': Resolve F d' c c ms'
h_ok✝: i ≤ F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: ms = List.map (Meas.adjust_align i) ms✝∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
D: List Doc
m: Meas
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝¹: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝¹)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h✝: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = m∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_align i m' = m∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d'✝: Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_align i m' = m
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m'∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d'✝: Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_align i m' = m
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m'α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d'✝: Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = m
m': Meas
h_left: m' ∈ ms✝
h_right: Meas.adjust_align i m' = m
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m'MeasRender F (Doc.align d') c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
m': Meas
h_left: m' ∈ ms✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m'
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = Meas.adjust_align i m'MeasRender F (Doc.align d') c i (Meas.adjust_align i m')α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d'✝ c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d'✝ L✝
m': Meas
h_left: m' ∈ ms✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m'
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = Meas.adjust_align i m'
this: m'.doc = d'MeasRender F (Doc.align d') c i (Meas.adjust_align i m')α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
m': Meas
h_left: m' ∈ ms✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = Meas.adjust_align i m'
h_in: m'.doc ∈ L✝
h_render: MeasRender F m'.doc c c m'MeasRender F (Doc.align m'.doc) c i (Meas.adjust_align i m')α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
L✝: List Doc
h_widen: Widen d' L✝
m': Meas
h_left: m' ∈ ms✝
h_m: ∃ a, a ∈ ms✝ ∧ Meas.adjust_align i a = Meas.adjust_align i m'
h_in: m'.doc ∈ L✝
h_render: MeasRender F m'.doc c c m'
hMeasRender F m'.doc c c { last := (Meas.adjust_align i m').last, cost := (Meas.adjust_align i m').cost, doc := m'.doc, x := (Meas.adjust_align i m').x, y := m'.y }α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h: List.map (Meas.adjust_align i) ms✝ ≠ []
h_m: m ∈ List.map (Meas.adjust_align i) ms✝
L✝: List Doc
h_widen: Widen d' L✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_bad✝: i > F.W
m✝: Meas
h✝: Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted m✝))
tainted∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_bad✝: i > F.W
ms✝: List Meas
h✝¹: ms✝ ≠ []
h✝: Resolve F d' c c (MeasureSet.set ms✝ h✝¹)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms✝ h✝¹))
set∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_bad✝: i > F.W
m✝: Meas
h✝: Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted m✝))
tainted∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
h_bad✝: i > F.W
ms✝: List Meas
h✝¹: ms✝ ≠ []
h✝: Resolve F d' c c (MeasureSet.set ms✝ h✝¹)
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms✝ h✝¹))
set∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.set ms h = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i (MeasureSet.set ms h)
h_widen: Widen (Doc.choice d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms✝: List Meas
h: ms✝ ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms✝
d₁, d₂: Doc
h_widen: Widen (Doc.choice d₁ d₂) D
ms: MeasureSet
h_gen: MeasureSet.set ms✝ h = ms
h_print: Resolve F (Doc.choice d₁ d₂) c i ms∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i (MeasureSet.set ms h)
h_widen: Widen (Doc.choice d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms✝: List Meas
h: ms✝ ≠ []
m: Meas
h_m: m ∈ ms✝
d₁, d₂: Doc
ms: MeasureSet
h_gen: MeasureSet.set ms✝ h = ms
h_print: Resolve F (Doc.choice d₁ d₂) c i ms
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
choice∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i (MeasureSet.set ms h)
h_widen: Widen (Doc.choice d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms✝: List Meas
h: ms✝ ≠ []
m: Meas
h_m: m ∈ ms✝
d₁, d₂: Doc
ms: MeasureSet
h_gen: MeasureSet.set ms✝ h = ms
h_print: Resolve F (Doc.choice d₁ d₂) c i ms
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝, ms'✝: MeasureSet
h_left✝: Resolve F d₁ c i ms✝
h_right✝: Resolve F d₂ c i ms'✝
h_gen: MeasureSet.set ms h = MeasureSet.union F ms✝ ms'✝
choice∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms✝: List Meas
h: ms✝ ≠ []
m: Meas
h_m: m ∈ ms✝
d₁, d₂: Doc
ms: MeasureSet
h_gen: MeasureSet.set ms✝ h = ms
h_print: Resolve F (Doc.choice d₁ d₂) c i ms
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₁, ms₂: MeasureSet
h₁: Resolve F d₁ c i ms₁
h₂: Resolve F d₂ c i ms₂
h_gen: MeasureSet.set ms h = MeasureSet.union F ms₁ ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) ms₂
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₁, ms₂: MeasureSet
h₁: Resolve F d₁ c i ms₁
h₂: Resolve F d₂ c i ms₂
h_gen: MeasureSet.set ms h = MeasureSet.union F ms₁ ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: ms = ms✝∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: ms = ms✝∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h✝: ms ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h✝¹: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h✝: ms ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms h✝)
d_choiceless: Doc
h: d_choiceless ∈ L₂✝ ∧ MeasRender F d_choiceless c i m∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h✝¹: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h✝: ms ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms h✝)
d_choiceless: Doc
h: d_choiceless ∈ L₂✝ ∧ MeasRender F d_choiceless c i md_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₁, ms₂: MeasureSet
h₁: Resolve F d₁ c i ms₁
h₂: Resolve F d₂ c i ms₂
h_gen: MeasureSet.set ms h = MeasureSet.union F ms₁ ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: ms = ms'∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: ms = ms'∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h✝: ms ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h✝¹: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h✝: ms ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms h✝)
d_choiceless: Doc
h: d_choiceless ∈ L₁✝ ∧ MeasRender F d_choiceless c i m∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h✝¹: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h✝: ms ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms h✝)
d_choiceless: Doc
h: d_choiceless ∈ L₁✝ ∧ MeasRender F d_choiceless c i md_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms'' h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: ms = merge F (ms', ms'')∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms'' h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ merge F (ms', ms'')∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms'' h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms' ∨ m ∈ ms''∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms'' h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝²: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝²)
ms'': List Meas
h✝¹: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝¹)
h: merge F (ms', ms'') ≠ []
h✝: m ∈ ms'
inl∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝²: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝²)
ms'': List Meas
h✝¹: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝¹)
h: merge F (ms', ms'') ≠ []
h✝: m ∈ ms''
inr∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms'' h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms'∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝²: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝²)
ms'': List Meas
h✝¹: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝¹)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms'
d_choiceless: Doc
h✝: d_choiceless ∈ L₁✝ ∧ MeasRender F d_choiceless c i m∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms'∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝²: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝²)
ms'': List Meas
h✝¹: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝¹)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms'
d_choiceless: Doc
h✝: d_choiceless ∈ L₁✝ ∧ MeasRender F d_choiceless c i md_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms'∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h_gen: MeasureSet.set ms h = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms'' h✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms''∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝²: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝²)
ms'': List Meas
h✝¹: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝¹)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms''
d_choiceless: Doc
h✝: d_choiceless ∈ L₂✝ ∧ MeasRender F d_choiceless c i m∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms''∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝²: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝²)
ms'': List Meas
h✝¹: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝¹)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms''
d_choiceless: Doc
h✝: d_choiceless ∈ L₂✝ ∧ MeasRender F d_choiceless c i md_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms'': List Meas
h✝: ms'' ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms'' h✝)
h: merge F (ms', ms'') ≠ []
h_m: m ∈ ms''∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.set ms h)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.set ms h)
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
concat∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.set ms h)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
D: List Doc
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.set ms h)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_rightResolveConcat F ?concat.concat_set.ms ?concat.concat_set.d₂ i (MeasureSet.set ?concat.concat_set.ms_r ?concat.concat_set.h_non_empty_r)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_widen₁Widen ?concat.concat_set.d₁ L₁✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_widen₂Widen ?concat.concat_set.d₂ L₂✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_leftResolve F ?concat.concat_set.d₁ c i (MeasureSet.set ?concat.concat_set.orig_ms ?concat.concat_set.h_non_empty)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_transferα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_mm ∈ ?concat.concat_set.ms_rα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.d₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.ms_rList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_non_empty_r?concat.concat_set.ms_r ≠ []α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.d₁α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.orig_msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_non_empty?concat.concat_set.orig_ms ≠ []α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_rightResolveConcat F ?concat.concat_set.ms ?concat.concat_set.d₂ i (MeasureSet.set ?concat.concat_set.ms_r ?concat.concat_set.h_non_empty_r)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_widen₁Widen ?concat.concat_set.d₁ L₁✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_widen₂Widen ?concat.concat_set.d₂ L₂✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_leftResolve F ?concat.concat_set.d₁ c i (MeasureSet.set ?concat.concat_set.orig_ms ?concat.concat_set.h_non_empty)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_transferα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_mm ∈ ?concat.concat_set.ms_rα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.d₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.ms_rList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_non_empty_r?concat.concat_set.ms_r ≠ []α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.d₁α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.orig_msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_non_empty?concat.concat_set.orig_ms ≠ []α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_mm ∈ msGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
ms: List Meas
h: ms ≠ []
m: Meas
h_m: m ∈ ms
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.set ms h)
concat.concat_set.h_mm ∈ mstheoremGoals accomplished! 🐙ResolveConcat_valid (ResolveConcat_valid: ∀ {α : Type} {F : Factory α} {ms : List Meas} {d₂ : Doc} {i : ℕ} {ms_r : List Meas} {h_non_empty_r : ms_r ≠ []} {d₁ : Doc} {L₁ L₂ : List Doc} {c : ℕ} {orig_ms : List Meas} {h_non_empty : orig_ms ≠ []} (m : Meas), ResolveConcat F ms d₂ i (MeasureSet.set ms_r h_non_empty_r) → Widen d₁ L₁ → Widen d₂ L₂ → Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty) → (∀ (x : Meas), x ∈ ms → x ∈ orig_ms) → m ∈ ms_r → ∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mm : Meas) (m: Meash_right : ResolveConcath_right: ResolveConcat F ms d₂ i (MeasureSet.set ms_r h_non_empty_r)FF: ?m.150msms: ?m.160d₂d₂: ?m.170i (MeasureSet.seti: ?m.179ms_rms_r: ?m.191h_non_empty_r)) (h_non_empty_r: ?m.202h_widen₁ : Widenh_widen₁: Widen d₁ L₁d₁d₁: ?m.218L₁) (L₁: ?m.231h_widen₂ : Widenh_widen₂: Widen d₂ L₂d₂d₂: ?m.170L₂) (L₂: ?m.246h_left : Resolveh_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)FF: ?m.150d₁d₁: ?m.218cc: ?m.264i (MeasureSet.seti: ?m.179orig_msorig_ms: ?m.284h_non_empty)) (h_transfer : ∀h_non_empty: ?m.304x,x: ?m.326x ∈x: ?m.326ms →ms: ?m.160x ∈x: ?m.326orig_ms) (orig_ms: ?m.284h_m :h_m: m ∈ ms_rm ∈m: Measms_r) : ∃ms_r: ?m.191d_choiceless,d_choiceless: ?m.407d_choiceless ∈ List.join (List.map (fund_choiceless: ?m.407d₁ => List.map (fund₁: ?m.422d₂ => Doc.concatd₂: ?m.430d₁d₁: ?m.422d₂)d₂: ?m.430L₂)L₂: ?m.246L₁) ∧ MeasRenderL₁: ?m.231FF: ?m.150d_choicelessd_choiceless: ?m.407cc: ?m.264ii: ?m.179m :=m: MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_right: ResolveConcat F ms d₂ i (MeasureSet.set ms_r h_non_empty_r)
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_right: ResolveConcat F ms d₂ i (MeasureSet.set ms_r h_non_empty_r)
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_transfer: ∀ (x : Meas), x ∈ [] → x ∈ orig_ms
h_right: ResolveConcat F [] d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_right: ResolveConcat F [m₀] d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_current✝: ResolveConcatOne F d₂ m₀ i ml
one∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
msr✝, msr'✝: MeasureSet
h_current✝: ResolveConcatOne F d₂ m₀ i msr'✝
h_rest✝: ResolveConcat F [] d₂ i msr✝
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr'✝ msr✝
cons∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_right: ResolveConcat F [m₀] d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
msr✝, msr'✝: MeasureSet
h_current✝: ResolveConcatOne F d₂ m₀ i msr'✝
h_rest✝: ResolveConcat F [] d₂ i msr✝
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr'✝ msr✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_right: ResolveConcat F [m₀] d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m₀ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
m'✝: Meas
h✝: Resolve F d₂ m₀.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.tainted (Meas.concat F m₀ m'✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m₀ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
m'✝: Meas
h✝: Resolve F d₂ m₀.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.tainted (Meas.concat F m₀ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m₀ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)
refl∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: m ∈ List.map (fun m' => Meas.concat F m₀ m') ms✝
refl∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
refl∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝: Meas.concat F m₀ m_right = m
refl∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝: Meas.concat F m₀ m_right = m
refl∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝: Meas.concat F m₀ m_right = mm₀ ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝: Meas.concat F m₀ m_right = m
am₀ ∈ [m₀]α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝: Meas.concat F m₀ m_right = mm₀ ∈ orig_msGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝¹: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝: d_choiceless_left ∈ L₁
right✝: MeasRender F d_choiceless_left c i m₀
refl.intro.intro∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.intro∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.introDoc.concat d_choiceless_left d_choiceless_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F (Doc.concat d_choiceless_left d_choiceless_right) c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.introMeasRender F (Doc.concat d_choiceless_left d_choiceless_right) c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.intro.h₁MeasRender F d_choiceless_left c i ?refl.intro.intro.m₁α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.intro.h₂MeasRender F d_choiceless_right ?refl.intro.intro.m₁.last i ?refl.intro.intro.m₂α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.intro.hm = Meas.concat F ?refl.intro.intro.m₁ ?refl.intro.intro.m₂α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.intro.m₁Measα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_right
refl.intro.intro.m₂Measα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_rightMeasRender F d_choiceless_left c i ?refl.intro.intro.m₁Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_rightm = Meas.concat F m₀ m_rightα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_rightMeas.concat F m₀ m_right = mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_rightMeas.concat F m₀ m_right = mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₀: Meas
h_transfer: ∀ (x : Meas), x ∈ [m₀] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_right: Resolve F d₂ m₀.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₀ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₀ a = m
m_right: Meas
h_in_right: m_right ∈ ms✝
right✝²: Meas.concat F m₀ m_right = m
h_in_left: m₀ ∈ orig_ms
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₀
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₀.last i m_rightm = Meas.concat F m₀ m_rightGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
h_right: ResolveConcat F (m₁ :: m₂ :: tl) d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr✝, msr'✝: MeasureSet
h_current✝: ResolveConcatOne F d₂ m₁ i msr'✝
h_rest✝: ResolveConcat F (m₂ :: tl) d₂ i msr✝
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr'✝ msr✝
cons∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
ml: MeasureSet
h_ml: MeasureSet.set ms_r h_non_empty_r = ml
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
h_right: ResolveConcat F (m₁ :: m₂ :: tl) d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr, msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
h_rest: ResolveConcat F (m₂ :: tl) d₂ i msr
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' msr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr, msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
h_rest: ResolveConcat F (m₂ :: tl) d₂ i msr
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' msr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝¹: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝¹)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.tainted m✝¹)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝¹: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝¹)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.tainted m✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: ms_r = ms✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms_r h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝¹: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty✝)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ List.map (fun m' => Meas.concat F m₁ m') ms✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m?m.87122 ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m?m.87122 ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m?m.87122 ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m
aα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m?m.87122 ∈ orig_msGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝¹: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝: d_choiceless_left ∈ L₁
right✝: MeasRender F d_choiceless_left c i m₁∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_right∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightDoc.concat d_choiceless_left d_choiceless_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F (Doc.concat d_choiceless_left d_choiceless_right) c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightMeasRender F (Doc.concat d_choiceless_left d_choiceless_right) c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_right
h₁MeasRender F d_choiceless_left c i ?m₁α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_right
h₂MeasRender F d_choiceless_right ?m₁.last i ?m₂α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_right
hm = Meas.concat F ?m₁ ?m₂α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_right
m₁Measα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_right
m₂Measα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightMeasRender F d_choiceless_right m₁.last i ?m₂Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightm = Meas.concat F m₁ m_rightα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightMeas.concat F m₁ m_right = mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightMeas.concat F m₁ m_right = mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h_non_empty_r, h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_m: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
m_right: Meas
h_in: m_right ∈ ms✝
right✝²: Meas.concat F m₁ m_right = m
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i m_rightm = Meas.concat F m₁ m_rightGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr, msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
h_rest: ResolveConcat F (m₂ :: tl) d₂ i msr
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' msr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: ms_r = ms✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)
x✝: Meas
a✝: x✝ ∈ m₂ :: tlx✝ ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)
x✝: Meas
a✝: x✝ ∈ m₂ :: tl
aα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)
x✝: Meas
a✝: x✝ ∈ m₂ :: tl
a.aα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝)Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h✝¹: ms_r ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms_r h✝¹)
d_choiceless: Doc
h✝: d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
msr': MeasureSet
h_current: ResolveConcatOne F d₂ m₁ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: ms_r = merge F (ms✝, ms✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝²: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝²)
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝¹)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h✝: m ∈ ms✝
inl∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝²: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝²)
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝¹)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h✝: m ∈ ms✝¹
inr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝²: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝²)
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝¹: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty✝)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)?m.108998 ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)?m.108998 ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)?m.108998 ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
aα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)?m.108998 ∈ orig_msGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝: d_choiceless_left ∈ L₁
right✝: MeasRender F d_choiceless_left c i m₁∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝: d_choiceless_left ∈ L₁
right✝: MeasRender F d_choiceless_left c i m₁
h_d: m ∈ List.map (fun m' => Meas.concat F m₁ m') ms✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝: d_choiceless_left ∈ L₁
right✝: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝: d_choiceless_left ∈ L₁
right✝¹: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝: Meas.concat F m₁ w✝ = m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝Doc.concat d_choiceless_left d_choiceless_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F (Doc.concat d_choiceless_left d_choiceless_right) c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝MeasRender F (Doc.concat d_choiceless_left d_choiceless_right) c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝
h₁MeasRender F d_choiceless_left c i ?m₁α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝
h₂MeasRender F d_choiceless_right ?m₁.last i ?m₂α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝
hm = Meas.concat F ?m₁ ?m₂α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝
m₁Measα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝
m₂Measα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝MeasRender F d_choiceless_right m₁.last i ?m₂Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
h_d: m ∈ dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝m = Meas.concat F m₁ w✝α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝Meas.concat F m₁ w✝ = mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝Meas.concat F m₁ w✝ = mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty✝: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty✝)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h_non_empty: ms✝ ≠ []
h_current: Resolve F d₂ m₁.last i (MeasureSet.set ms✝ h_non_empty)
h✝: dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝) ≠ []
h_non_empty_r: merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹) ≠ []
h_m: m ∈ merge F (dedup F (List.map (fun m' => Meas.concat F m₁ m') ms✝), ms✝¹)
this: ∃ d_choiceless, d_choiceless ∈ L₁ ∧ MeasRender F d_choiceless c i m₁
d_choiceless_left: Doc
left✝¹: d_choiceless_left ∈ L₁
right✝²: MeasRender F d_choiceless_left c i m₁
h_d: ∃ a, a ∈ ms✝ ∧ Meas.concat F m₁ a = m
w✝: Meas
h_star: w✝ ∈ ms✝
right✝¹: Meas.concat F m₁ w✝ = m
d_choiceless_right: Doc
left✝: d_choiceless_right ∈ L₂
right✝: MeasRender F d_choiceless_right m₁.last i w✝m = Meas.concat F m₁ w✝Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
ms_r: List Meas
h_non_empty_r: ms_r ≠ []
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_m: m ∈ ms_r
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.set ms_r h_non_empty_r = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹
x✝: Meas
a✝: x✝ ∈ m₂ :: tlx✝ ∈ orig_msα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹
x✝: Meas
a✝: x✝ ∈ m₂ :: tl
aα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹
x✝: Meas
a✝: x✝ ∈ m₂ :: tl
a.aα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝²: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝²)
ms✝: List Meas
h✝¹: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝¹)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹
d_choiceless: Doc
h✝: d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
m: Meas
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m₁, m₂: Meas
tl: List Meas
h_transfer: ∀ (x : Meas), x ∈ m₁ :: m₂ :: tl → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F (m₂ :: tl) d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m₁ i (MeasureSet.set ms✝ h✝)
h_non_empty_r: merge F (ms✝, ms✝¹) ≠ []
h_m: m ∈ merge F (ms✝, ms✝¹)
h_d: m ∈ ms✝¹∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mend termination_by ResolveConcat_valid => (Goals accomplished! 🐙d₁.size +d₁: Docd₂.size +d₂: Doc1,1: ?m.1450950,0: ?m.145173ms.length) Resolve_valid => (ms: List Measd.size,d: Doc1,1: ?m.1446520) mutual /-- The validity theorem for tainted result (the second part of Theorem 5.8) -/ theorem0: ?m.144663Resolve_tainted_valid (h_print : Resolveh_print: Resolve F d c i (MeasureSet.tainted m)FF: ?m.410385dd: ?m.410392cc: ?m.410398i (i: ?m.410404MeasureSet.taintedMeasureSet.tainted: {α : Type} → Meas → MeasureSetm)) (m: ?m.410413h_widen : Widenh_widen: Widen d Ddd: ?m.410392D) : ∃D: ?m.410424d_choiceless,d_choiceless: ?m.410438d_choiceless ∈d_choiceless: ?m.410438D ∧ MeasRenderD: ?m.410424FF: ?m.410385d_choicelessd_choiceless: ?m.410438cc: ?m.410398ii: ?m.410404m :=m: ?m.410413Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
s: String
h_widen: Widen (Doc.text s) D
h_bad✝: c + String.length s > F.W ∨ i > F.W
h✝: MeasRender F (Doc.text s) c i m
text_taint.leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
s: String
h_widen: Widen (Doc.text s) D
h_bad✝: c + String.length s > F.W ∨ i > F.W
h✝: MeasRender F (Doc.text s) c i m
text_taint.rightMeasRender F (Doc.text s) c i mGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
h_widen: Widen Doc.nl D
h_bad✝: c > F.W ∨ i > F.W
h✝: MeasRender F Doc.nl c i m
line_taint.leftα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
h_widen: Widen Doc.nl D
h_bad✝: c > F.W ∨ i > F.W
h✝: MeasRender F Doc.nl c i m
line_taint.rightMeasRender F Doc.nl c i mGoals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: MeasureSet
h✝: Resolve F d' c (i + n) ms✝
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) ms✝
nest∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms': MeasureSet
h': Resolve F d' c (i + n) ms'
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms': MeasureSet
h': Resolve F d' c (i + n) ms'
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c (i + n) (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
ms': MeasureSet
h': Resolve F d' c (i + n) ms'
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d'✝: Doc
m✝: Meas
h': Resolve F d'✝ c (i + n) (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m✝
nest∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_nest n m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d'✝: Doc
m✝: Meas
h': Resolve F d'✝ c (i + n) (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m✝
nestDoc.nest n d' ∈ List.map (fun d => Doc.nest n d) L✝ ∧ MeasRender F (Doc.nest n d') c i (Meas.adjust_nest n m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d'✝: Doc
m✝: Meas
h': Resolve F d'✝ c (i + n) (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m✝
nestMeasRender F (Doc.nest n d') c i (Meas.adjust_nest n m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d'✝: Doc
m✝: Meas
h': Resolve F d'✝ c (i + n) (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c (i + n) m✝
this: m✝.doc = d'
nestMeasRender F (Doc.nest n d') c i (Meas.adjust_nest n m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d': Doc
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d' L✝
h_in: m✝.doc ∈ L✝
h_render: MeasRender F m✝.doc c (i + n) m✝
nestMeasRender F (Doc.nest n m✝.doc) c i (Meas.adjust_nest n m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i, n: ℕ
d': Doc
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d' L✝
h_in: m✝.doc ∈ L✝
h_render: MeasRender F m✝.doc c (i + n) m✝
nest.hMeasRender F m✝.doc c (i + n) { last := (Meas.adjust_nest n m✝).last, cost := (Meas.adjust_nest n m✝).cost, doc := m✝.doc, x := (Meas.adjust_nest n m✝).x, y := (Meas.adjust_nest n m✝).y }α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
n: ℕ
d': Doc
h_widen: Widen (Doc.nest n d') D
m✝: Meas
h': Resolve F d' c (i + n) (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_nest n) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms✝: MeasureSet
h✝: Resolve F d' c c ms✝
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms✝)
align_taint∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms✝: MeasureSet
h✝: Resolve F d' c c ms✝
h_ok✝: i ≤ F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) ms✝
align∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h': Resolve F d' c c ms'
h_ok✝: i ≤ F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h': Resolve F d' c c ms'
h_ok✝: i ≤ F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
ms✝: List Meas
h✝: ms✝ ≠ []
h': Resolve F d' c c (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h': Resolve F d' c c ms'
h_ok✝: i ≤ F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) ms'∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝
alignDoc.align d' ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F (Doc.align d') c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝
alignMeasRender F (Doc.align d') c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d'✝ L✝
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝
this: m✝.doc = d'
alignMeasRender F (Doc.align d') c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d' L✝
h_in: m✝.doc ∈ L✝
h_render: MeasRender F m✝.doc c c m✝
alignMeasRender F (Doc.align m✝.doc) c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
L✝: List Doc
h_widen: Widen d' L✝
h_in: m✝.doc ∈ L✝
h_render: MeasRender F m✝.doc c c m✝
align.hMeasRender F m✝.doc c c { last := (Meas.adjust_align i m✝).last, cost := (Meas.adjust_align i m✝).cost, doc := m✝.doc, x := (Meas.adjust_align i m✝).x, y := m✝.y }α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
h_ok✝: i ≤ F.W
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
ms': MeasureSet
h✝¹: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')
L✝: List Doc
h✝: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')
L✝: List Doc
h_widen: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
m✝: Meas
h✝: Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted m✝))
align.tainted∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h✝: Resolve F d' c c (MeasureSet.set ms✝ h✝¹)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms✝ h✝¹))
align.set∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')
L✝: List Doc
h_widen: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
m✝: Meas
h✝: Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.tainted m✝))
align.tainted∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h✝: Resolve F d' c c (MeasureSet.set ms✝ h✝¹)
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint (MeasureSet.set ms✝ h✝¹))
align.set∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')
L✝: List Doc
h_widen: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')
L✝: List Doc
h_widen: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
m✝: Meas
h✝: Resolve F d' c c (MeasureSet.tainted m✝)
h_gen: m = Meas.adjust_align i m✝
align.tainted∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
ms✝: List Meas
h✝¹: ms✝ ≠ []
h✝: Resolve F d' c c (MeasureSet.set ms✝ h✝¹)
h_gen: m = Meas.adjust_align i (List.head ms✝ h✝¹)
align.set∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d': Doc
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')
L✝: List Doc
h_widen: Widen d' L✝
align∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝Doc.align d' ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F (Doc.align d') c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝MeasRender F (Doc.align d') c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
m✝: Meas
h': Resolve F d'✝ c c (MeasureSet.tainted m✝)
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c m✝
this: m✝.doc = d'MeasRender F (Doc.align d') c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_in: m✝.doc ∈ L✝
h_render: MeasRender F m✝.doc c c m✝MeasRender F (Doc.align m✝.doc) c i (Meas.adjust_align i m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
m✝: Meas
h': Resolve F d' c c (MeasureSet.tainted m✝)
h_in: m✝.doc ∈ L✝
h_render: MeasRender F m✝.doc c c m✝
hMeasRender F m✝.doc c c { last := (Meas.adjust_align i m✝).last, cost := (Meas.adjust_align i m✝).cost, doc := m✝.doc, x := (Meas.adjust_align i m✝).x, y := m✝.y }Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d': Doc
h_widen: Widen (Doc.align d') D
ms': MeasureSet
h✝: Resolve F d' c c ms'
h_bad✝: i > F.W
h_gen: MeasureSet.tainted m = MeasureSet.lift (Meas.adjust_align i) (MeasureSet.taint ms')∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
ms_res: List Meas
h_non_empty: ms_res ≠ []
h': Resolve F d' c c (MeasureSet.set ms_res h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head ms_res h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
h_non_empty: [] ≠ []
h': Resolve F d' c c (MeasureSet.set [] h_non_empty)
nil∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head [] h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
head✝: Meas
tail✝: List Meas
h_non_empty: head✝ :: tail✝ ≠ []
h': Resolve F d' c c (MeasureSet.set (head✝ :: tail✝) h_non_empty)
cons∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (head✝ :: tail✝) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
ms_res: List Meas
h_non_empty: ms_res ≠ []
h': Resolve F d' c c (MeasureSet.set ms_res h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head ms_res h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
h_non_empty: [] ≠ []
h': Resolve F d' c c (MeasureSet.set [] h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head [] h_non_empty))Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
ms_res: List Meas
h_non_empty: ms_res ≠ []
h': Resolve F d' c c (MeasureSet.set ms_res h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head ms_res h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d'✝ c c (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c hd∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d'✝ c c (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c hdDoc.align d' ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F (Doc.align d') c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d'✝ c c (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c hdMeasRender F (Doc.align d') c i (Meas.adjust_align i hd)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d'✝: Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d'✝ L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d'✝ c c (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d': Doc
h_in: d' ∈ L✝
h_render: MeasRender F d' c c hd
this: hd.doc = d'MeasRender F (Doc.align d') c i (Meas.adjust_align i hd)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
h_in: hd.doc ∈ L✝
h_render: MeasRender F hd.doc c c hdMeasRender F (Doc.align hd.doc) c i (Meas.adjust_align i hd)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
h_in: hd.doc ∈ L✝
h_render: MeasRender F hd.doc c c hd
hMeasRender F hd.doc c c { last := (Meas.adjust_align i hd).last, cost := (Meas.adjust_align i hd).cost, doc := hd.doc, x := (Meas.adjust_align i hd).x, y := hd.y }α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d': Doc
h_bad✝: i > F.W
L✝: List Doc
h_widen: Widen d' L✝
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h': Resolve F d' c c (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.map (fun d => Doc.align d) L✝ ∧ MeasRender F d_choiceless c i (Meas.adjust_align i (List.head (hd :: tl) h_non_empty))Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.choice d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_widen: Widen (Doc.choice d₁ d₂) D
ml: MeasureSet
h_gen: MeasureSet.tainted m = ml
h_print: Resolve F (Doc.choice d₁ d₂) c i ml∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.choice d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.choice d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.choice d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝, ms'✝: MeasureSet
h_left✝: Resolve F d₁ c i ms✝
h_right✝: Resolve F d₂ c i ms'✝
h_gen: MeasureSet.tainted m = MeasureSet.union F ms✝ ms'✝
choice∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₁, ms₂: MeasureSet
h₁: Resolve F d₁ c i ms₁
h₂: Resolve F d₂ c i ms₂
h_gen: MeasureSet.tainted m = MeasureSet.union F ms₁ ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) ms₂
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms✝: List Meas
h✝: ms✝ ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms✝ h✝) ms₂
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₁, ms₂: MeasureSet
h₁: Resolve F d₁ c i ms₁
h₂: Resolve F d₂ c i ms₂
h_gen: MeasureSet.tainted m = MeasureSet.union F ms₁ ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
m✝: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: m = m✝¹∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h₁: Resolve F d₁ c i (MeasureSet.tainted m)
d': Doc
h_in: d' ∈ L₁✝
h_render: MeasRender F d' c i m∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h₁: Resolve F d₁ c i (MeasureSet.tainted m)
d': Doc
h_in: d' ∈ L₁✝
h_render: MeasRender F d' c i md' ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d' c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h₁: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝¹) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₁, ms₂: MeasureSet
h₁: Resolve F d₁ c i ms₁
h₂: Resolve F d₂ c i ms₂
h_gen: MeasureSet.tainted m = MeasureSet.union F ms₁ ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
m✝: Meas
h₂: Resolve F d₂ c i (MeasureSet.tainted m✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms': List Meas
h✝¹: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h₂: Resolve F d₂ c i (MeasureSet.set ms✝ h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝¹) (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms₂: MeasureSet
h₂: Resolve F d₂ c i ms₂
ms': List Meas
h✝: ms' ≠ []
h₁: Resolve F d₁ c i (MeasureSet.set ms' h✝)
h_gen: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms' h✝) ms₂∃ d_choiceless, d_choiceless ∈ L₁✝ ++ L₂✝ ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
L₁✝, L₂✝: List Doc
h₁✝: Widen d₁ L₁✝
h₂✝: Widen d₂ L₂✝
concat∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
concat∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms'✝: MeasureSet
m'✝: Meas
h_taint✝: MeasureSet.taint ms'✝ = MeasureSet.tainted m'✝
h_right✝: Resolve F d₂ m✝.last i ms'✝
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝)
concat.concat_taint∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left✝: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h✝: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
concat.concat_set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_taint: MeasureSet.taint (MeasureSet.tainted m✝) = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_taint: MeasureSet.taint (MeasureSet.set ms✝ h✝) = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_taint: MeasureSet.taint (MeasureSet.tainted m✝) = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_taint: MeasureSet.taint (MeasureSet.set ms✝ h✝) = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
h_taint: m✝ = m'✝
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
h_taint: m✝ = m'✝
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝, m'✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms✝ h✝)
h_taint: List.head ms✝ h✝ = m'✝
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms✝: List Meas
h✝: ms✝ ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head ms✝ h✝))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝Doc.concat d_left d_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝¹ m✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝
h₁MeasRender F d_left c i ?m₁α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝
h₂MeasRender F d_right ?m₁.last i ?m₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝
hMeas.concat F m✝¹ m✝ = Meas.concat F ?m₁ ?m₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝
m₁Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝¹: Meas
h_left✝: Resolve F d₁ c i (MeasureSet.tainted m✝¹)
m✝: Meas
h_right✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m✝)
d_left: Doc
left✝¹: d_left ∈ L₁✝
h_left: MeasRender F d_left c i m✝¹
d_right: Doc
left✝: d_right ∈ L₂✝
h_right: MeasRender F d_right m✝¹.last i m✝
m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
ms: MeasureSet
m'✝: Meas
h_taint: MeasureSet.taint ms = MeasureSet.tainted m'✝
h_right: Resolve F d₂ m✝.last i ms
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms_res: List Meas
h_non_empty: ms_res ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms_res h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head ms_res h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_non_empty: [] ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set [] h_non_empty)
nil∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head [] h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
head✝: Meas
tail✝: List Meas
h_non_empty: head✝ :: tail✝ ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (head✝ :: tail✝) h_non_empty)
cons∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (head✝ :: tail✝) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms_res: List Meas
h_non_empty: ms_res ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms_res h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head ms_res h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
h_non_empty: [] ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set [] h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head [] h_non_empty))Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
ms_res: List Meas
h_non_empty: ms_res ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set ms_res h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head ms_res h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))Goals accomplished! 🐙Goals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝: d_left ∈ L₁✝
right✝: MeasRender F d_left c i m✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hd∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hdDoc.concat d_left d_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hdMeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝ hd)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ (List.head (hd :: tl) h_non_empty))α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hdMeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝ hd)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hd
h₁MeasRender F d_left c i ?m₁α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hd
h₂MeasRender F d_right ?m₁.last i ?m₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hd
hMeas.concat F m✝ hd = Meas.concat F ?m₁ ?m₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hd
m₁Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
m✝: Meas
h_left: Resolve F d₁ c i (MeasureSet.tainted m✝)
hd: Meas
tl: List Meas
h_non_empty: hd :: tl ≠ []
h_right: Resolve F d₂ m✝.last i (MeasureSet.set (hd :: tl) h_non_empty)
h_mem: hd ∈ hd :: tl
d_left: Doc
left✝¹: d_left ∈ L₁✝
right✝¹: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂✝
right✝: MeasRender F d_right m✝.last i hd
m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
D: List Doc
d₁, d₂: Doc
h_print: Resolve F (Doc.concat d₁ d₂) c i (MeasureSet.tainted m)
h_widen: Widen (Doc.concat d₁ d₂) D∃ d_choiceless, d_choiceless ∈ D ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂✝) L₁✝) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
h_rightResolveConcat F ?ms ?d₂ i (MeasureSet.tainted m)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
h_widen₁Widen ?d₁ L₁✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
h_widen₂Widen ?d₂ L₂✝α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
h_leftResolve F ?d₁ c i (MeasureSet.set ?orig_ms ?h_non_empty)α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
h_transferα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
d₂α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
d₁α✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
orig_msList Measα✝: Type
F: Factory α✝
d: Doc
c, i: ℕ
m: Meas
d₁, d₂: Doc
L₁✝, L₂✝: List Doc
h_widen₁: Widen d₁ L₁✝
h_widen₂: Widen d₂ L₂✝
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h_left: Resolve F d₁ c i (MeasureSet.set ms✝ h_non_empty✝)
h_print: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m)
h_non_empty?orig_ms ≠ []theoremGoals accomplished! 🐙ResolveConcat_tainted_valid (ResolveConcat_tainted_valid: ∀ {α : Type} {F : Factory α} {ms : List Meas} {d₂ : Doc} {i : ℕ} {m : Meas} {d₁ : Doc} {L₁ L₂ : List Doc} {c : ℕ} {orig_ms : List Meas} {h_non_empty : orig_ms ≠ []}, ResolveConcat F ms d₂ i (MeasureSet.tainted m) → Widen d₁ L₁ → Widen d₂ L₂ → Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty) → (∀ (x : Meas), x ∈ ms → x ∈ orig_ms) → ∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mh_right : ResolveConcath_right: ResolveConcat F ms d₂ i (MeasureSet.tainted m)FF: ?m.410464msms: ?m.410471d₂d₂: ?m.410478i (i: ?m.410484MeasureSet.taintedMeasureSet.tainted: {α : Type} → Meas → MeasureSetm)) (m: ?m.410493h_widen₁ : Widenh_widen₁: Widen d₁ L₁d₁d₁: ?m.410504L₁) (L₁: ?m.410514h_widen₂ : Widenh_widen₂: Widen d₂ L₂d₂d₂: ?m.410478L₂) (L₂: ?m.410526h_left : Resolveh_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)FF: ?m.410464d₁d₁: ?m.410504cc: ?m.410541i (MeasureSet.seti: ?m.410484orig_msorig_ms: ?m.410558h_non_empty)) (h_transfer : ∀h_non_empty: ?m.410575x,x: ?m.410597x ∈x: ?m.410597ms →ms: ?m.410471x ∈x: ?m.410597orig_ms) : ∃orig_ms: ?m.410558d_choiceless,d_choiceless: ?m.410656d_choiceless ∈ List.join (List.map (fund_choiceless: ?m.410656d₁ => List.map (fund₁: ?m.410671d₂ => Doc.concatd₂: ?m.410679d₁d₁: ?m.410671d₂)d₂: ?m.410679L₂)L₂: ?m.410526L₁) ∧ MeasRenderL₁: ?m.410514FF: ?m.410464d_choicelessd_choiceless: ?m.410656cc: ?m.410541ii: ?m.410484m :=m: ?m.410493Goals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_right: ResolveConcat F ms d₂ i (MeasureSet.tainted m)
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms
ml: MeasureSet
h_ml: MeasureSet.tainted m = ml
h_right: ResolveConcat F ms d₂ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_right: ResolveConcat F ms d₂ i (MeasureSet.tainted m)
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ml: MeasureSet
h_ml: MeasureSet.tainted m = ml
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
h_current✝: ResolveConcatOne F d₂ m✝ i ml
one∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
msr✝: MeasureSet
m✝: Meas
msr'✝: MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝ → x ∈ orig_ms
h_rest✝: ResolveConcat F ms✝ d₂ i msr✝
h_current✝: ResolveConcatOne F d₂ m✝ i msr'✝
h_ml: MeasureSet.tainted m = MeasureSet.union F msr'✝ msr✝
cons∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_right: ResolveConcat F ms d₂ i (MeasureSet.tainted m)
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ml: MeasureSet
h_ml: MeasureSet.tainted m = ml
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h✝: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝: Resolve F d₂ m✝.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.tainted m = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m✝ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m✝ m') ms✝) ≠ [])
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ml: MeasureSet
h_ml: MeasureSet.tainted m = ml
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝: Resolve F d₂ m✝.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.tainted m = MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m✝ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m✝ m') ms✝) ≠ [])∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ml: MeasureSet
h_ml: MeasureSet.tainted m = ml
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i ml∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: m = Meas.concat F m✝ m'✝
h_transfer: m✝ ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝Doc.concat d_left d_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ [m✝] → x ∈ orig_ms
m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.tainted (Meas.concat F m✝ m'✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m✝ m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝
h₁MeasRender F d_left c i ?m₁α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝
h₂MeasRender F d_right ?m₁.last i ?m₂α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝
hMeas.concat F m✝ m'✝ = Meas.concat F ?m₁ ?m₂α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝
m₁Measα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
m✝, m'✝: Meas
h_current: Resolve F d₂ m✝.last i (MeasureSet.tainted m'✝)
h_transfer: m✝ ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m✝
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m✝.last i m'✝
m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
ms: List Meas
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_right: ResolveConcat F ms d₂ i (MeasureSet.tainted m)
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
h_transfer: ∀ (x : Meas), x ∈ ms → x ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
msr: MeasureSet
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝ → x ∈ orig_ms
h_rest: ResolveConcat F ms✝ d₂ i msr
h_current: ResolveConcatOne F d₂ m✝ i msr'
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' msr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m✝¹: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝¹ i msr'
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝¹ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
msr: MeasureSet
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝ → x ∈ orig_ms
h_rest: ResolveConcat F ms✝ d₂ i msr
h_current: ResolveConcatOne F d₂ m✝ i msr'
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' msr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m✝¹: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝¹ i msr'
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m✝¹: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h✝: Resolve F d₂ m✝¹.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m✝¹ m'✝)) (MeasureSet.tainted m✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝¹: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝¹ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝: Resolve F d₂ m✝¹.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m✝¹ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m✝¹ m') ms✝) ≠ [])) (MeasureSet.tainted m✝)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m✝¹: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝¹ i msr'
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝¹: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝¹ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.tainted m✝)
ms✝: List Meas
h_non_empty✝: ms✝ ≠ []
h✝: Resolve F d₂ m✝¹.last i (MeasureSet.set ms✝ h_non_empty✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set (dedup F (List.map (fun m' => Meas.concat F m✝¹ m') ms✝)) (_ : dedup F (List.map (fun m' => Meas.concat F m✝¹ m') ms✝) ≠ [])) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m✝¹: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝¹ i msr'
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)Goals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)
h_transfer: m ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
h_ml: m✝¹ = Meas.concat F m m'✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i (Meas.concat F m m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝: d_left ∈ L₁
h₁: MeasRender F d_left c i m∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i (Meas.concat F m m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i (Meas.concat F m m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝Doc.concat d_left d_right ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m✝¹: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m: Meas
h_transfer: ∀ (x : Meas), x ∈ m :: ms✝ → x ∈ orig_ms
m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_ml: MeasureSet.tainted m✝¹ = MeasureSet.union F (MeasureSet.tainted (Meas.concat F m m'✝)) (MeasureSet.tainted m✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i m✝¹α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝MeasRender F (Doc.concat d_left d_right) c i (Meas.concat F m m'✝)α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝
h₁MeasRender F d_left c i ?m₁α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝
h₂MeasRender F d_right ?m₁.last i ?m₂α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝
hMeas.concat F m m'✝ = Meas.concat F ?m₁ ?m₂α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝
m₁Measα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
m, m✝: Meas
h_rest: ResolveConcat F ms✝ d₂ i (MeasureSet.tainted m✝)
m'✝: Meas
h_current: Resolve F d₂ m.last i (MeasureSet.tainted m'✝)
h_transfer: m ∈ orig_ms
d_left: Doc
left✝¹: d_left ∈ L₁
h₁: MeasRender F d_left c i m
d_right: Doc
left✝: d_right ∈ L₂
h₂: MeasRender F d_right m.last i m'✝
m₂MeasGoals accomplished! 🐙α✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝: List Meas
msr: MeasureSet
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝ → x ∈ orig_ms
h_rest: ResolveConcat F ms✝ d₂ i msr
h_current: ResolveConcatOne F d₂ m✝ i msr'
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' msr∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝¹ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝¹: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝¹ → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m✝¹ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝²: List Meas
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝² → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F ms✝² d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m✝ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝¹ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝¹: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝¹ :: ms✝¹ → x ∈ orig_ms
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
m✝: Meas
h_current: ResolveConcatOne F d₂ m✝¹ i (MeasureSet.tainted m✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.tainted m✝) (MeasureSet.set ms✝ h✝)
tainted∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝²: List Meas
m✝: Meas
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝² → x ∈ orig_ms
ms✝¹: List Meas
h✝¹: ms✝¹ ≠ []
h_rest: ResolveConcat F ms✝² d₂ i (MeasureSet.set ms✝¹ h✝¹)
ms✝: List Meas
h✝: ms✝ ≠ []
h_current: ResolveConcatOne F d₂ m✝ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F (MeasureSet.set ms✝ h✝) (MeasureSet.set ms✝¹ h✝¹)
set∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mα✝: Type
F: Factory α✝
d₂: Doc
i: ℕ
m: Meas
d₁: Doc
L₁, L₂: List Doc
c: ℕ
orig_ms: List Meas
h_non_empty: orig_ms ≠ []
h_widen₁: Widen d₁ L₁
h_widen₂: Widen d₂ L₂
h_left: Resolve F d₁ c i (MeasureSet.set orig_ms h_non_empty)
ms✝¹: List Meas
m✝: Meas
msr': MeasureSet
h_transfer: ∀ (x : Meas), x ∈ m✝ :: ms✝¹ → x ∈ orig_ms
h_current: ResolveConcatOne F d₂ m✝ i msr'
ms✝: List Meas
h✝: ms✝ ≠ []
h_rest: ResolveConcat F ms✝¹ d₂ i (MeasureSet.set ms✝ h✝)
h_ml: MeasureSet.tainted m = MeasureSet.union F msr' (MeasureSet.set ms✝ h✝)∃ d_choiceless, d_choiceless ∈ List.join (List.map (fun d₁ => List.map (fun d₂ => Doc.concat d₁ d₂) L₂) L₁) ∧ MeasRender F d_choiceless c i mend termination_by ResolveConcat_tainted_valid => (Goals accomplished! 🐙d₁.size +d₁: Docd₂.size +d₂: Doc1,1: ?m.5978080,0: ?m.597886ms.length) Resolve_tainted_valid => (ms: List Measd.size,d: Doc1,1: ?m.5974220)0: ?m.597433